#pragma once
#include <bondlib/BondInfo.h>
#include <bondlib/CompanyReport.h>
#include <bondlib/SSCFETSQuote.h>

#include <string>

namespace qb {
namespace biz {
std::string BuildIssuerName(const char *pszIssuerCode, bool eng = false);
std::string BuildGuarantorName(const char *pszGuarantor, bool eng = false);
std::string BuildBondTypeName(const char *pszSubTypeCode, const char *pszEntCor,
                              bool eng = false);
std::string BuildIssuerTag(const char *pszIssuerCode);

namespace csi {
std::string FmtYield(std::string sCombondkey, unsigned int &nCSIType);
std::string FmtYield(std::string sCombondkey);
std::string FmtCleanPrice(std::string sCombondkey);

std::string FmtBidMinusCSI(const REPORT &report, const CBondInfo *pBond);
std::string FmtCSIMinusOfr(const REPORT &report, const CBondInfo *pBond);
std::string FmtBidMinusCSI(const CFETSQUOTE &report, const CBondInfo *pBond);
std::string FmtCSIMinusOfr(const CFETSQUOTE &report, const CBondInfo *pBond);

std::string FmtDealMinusCSI(std::string sCombondkey, std::string sDeal);
std::string FmtCSIMinusCDC(const CBondInfo *pBond, const int nBondIndex,
                           bool bIsCDCAuthValid);
}  // namespace csi
}  // namespace biz
}  // namespace qb